package com.ruoyi.system.service;

import com.ruoyi.system.domain.File;
import org.springframework.web.multipart.MultipartFile;

import java.io.OutputStream;
import java.util.List;

/**
 * 文件 服务层
 */
public interface ISysFileService {
    /**
     * 查询文件列表
     *
     * @param file 文件信息
     * @return 文件集合
     */
    public List<File> selectFileList(File file);

    /**
     * 查询文件信息
     *
     * @param fileId 文件ID
     * @return 文件信息
     */
    public File selectFileById(Long fileId);

    /**
     * 上传文件
     *
     * @param file 文件信息
     * @return 文件信息
     */
    public File uploadFile(MultipartFile file) throws Exception;

    /**
     * 下载文件
     *
     * @param fileId 文件ID
     * @param output 输出流
     */
    public void downloadFile(Long fileId, OutputStream output) throws Exception;

    /**
     * 删除文件信息
     *
     * @param fileId 文件ID
     * @return 结果
     */
    public int deleteFile(Long fileId);

    /**
     * 批量删除文件信息
     *
     * @param fileIds 需要删除的文件ID
     * @return 结果
     */
    public int deleteFileByIds(Long[] fileIds);

    public int insertFile(File file);
}